package com.ruoyi.hbs.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 药品销售与库存记录表
 */
@ApiModel(description="药品销售与库存记录表")
@Data
@Builder(toBuilder = true)
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "sales_inventory_records")
public class SalesInventoryRecords implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value="主键ID")
    private Long id;

    /**
     * 单据编号
     */
    @TableField(value = "order_code")
    @ApiModelProperty(value="单据编号")
    @Excel(name = "单据编号")
    private String orderCode;

    /**
     * 单据类型：字典表order_type
     */
    @TableField(value = "order_type")
    @ApiModelProperty(value="单据类型：字典表order_type")
    @Excel(name = "单据类型", dictType = "order_type")
    private String orderType;

    /**
     * 单据时间
     */
    @TableField(value = "order_time")
    @ApiModelProperty(value="单据时间")
    @Excel(name = "单据时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;

    /**
     * 单据上传时间
     */
    @TableField(value = "upload_time")
    @ApiModelProperty(value="单据上传时间")
    @Excel(name = "单据上传时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date uploadTime;

    /**
     * 发货单位名称
     */
    @TableField(value = "sender_unit")
    @ApiModelProperty(value="发货单位名称")
    @Excel(name = "发货单位")
    private String senderUnit;

    /**
     * 发货单位企业类型：字典表sender_unit_type
     */
    @TableField(value = "sender_unit_type")
    @ApiModelProperty(value="发货单位企业类型：字典表sender_unit_type")
    @Excel(name = "发货单位企业类型", dictType = "sender_unit_type")
    private String senderUnitType;

    /**
     * 发货单位企业小类型
     */
    @TableField(value = "sender_unit_sub_type")
    @ApiModelProperty(value="发货单位企业小类型")
    @Excel(name = "发货单位企业小类型")
    private String senderUnitSubType;

    /**
     * 发货单位统一社会信用代码/接种单位代码
     */
    @TableField(value = "sender_credit_code")
    @ApiModelProperty(value="发货单位统一社会信用代码/接种单位代码")
    @Excel(name = "发货单位统一社会信用代码/接种单位代码")
    private String senderCreditCode;

    /**
     * 发货单位所属省份
     */
    @TableField(value = "sender_province")
    @ApiModelProperty(value="发货单位所属省份")
    @Excel(name = "发货单位所属省份")
    private String senderProvince;

    /**
     * 发货单位所属市
     */
    @TableField(value = "sender_city")
    @ApiModelProperty(value="发货单位所属市")
    @Excel(name = "发货单位所属市")
    private String senderCity;

    /**
     * 收货单位名称
     */
    @TableField(value = "receiver_unit")
    @ApiModelProperty(value="收货单位")
    @Excel(name = "收货单位")
    private String receiverUnit;

    /**
     * 收货单位企业类型：字典表receiver_unit_type
     */
    @TableField(value = "receiver_unit_type")
    @ApiModelProperty(value="收货单位企业类型：字典表receiver_unit_type")
    @Excel(name = "收货单位企业类型", dictType = "receiver_unit_type")
    private String receiverUnitType;

    /**
     * 收货单位企业小类型
     */
    @TableField(value = "receiver_unit_sub_type")
    @ApiModelProperty(value="收货单位企业小类型")
    @Excel(name = "收货单位企业小类型")
    private String receiverUnitSubType;

    /**
     * 收货单位统一社会信用代码/接种单位代码
     */
    @TableField(value = "receiver_credit_code")
    @ApiModelProperty(value="收货单位统一社会信用代码/接种单位代码")
    @Excel(name = "收货单位统一社会信用代码/接种单位代码")
    private String receiverCreditCode;

    /**
     * 收货单位所属省份
     */
    @TableField(value = "receiver_province")
    @ApiModelProperty(value="收货单位所属省份")
    @Excel(name = "收货单位所属省份")
    private String receiverProvince;

    /**
     * 收货单位所属市
     */
    @TableField(value = "receiver_city")
    @ApiModelProperty(value="收货单位所属市")
    @Excel(name = "收货单位所属市")
    private String receiverCity;

    /**
     * 委托单位名称
     */
    @TableField(value = "entrust_unit")
    @ApiModelProperty(value="委托单位")
    @Excel(name = "委托单位")
    private String entrustUnit;

    /**
     * 委托单位所属省份
     */
    @TableField(value = "entrust_province")
    @ApiModelProperty(value="委托单位所属省份")
    @Excel(name = "委托单位所属省份")
    private String entrustProvince;

    /**
     * 委托单位所属市
     */
    @TableField(value = "entrust_city")
    @ApiModelProperty(value="委托单位所属市")
    @Excel(name = "委托单位所属市")
    private String entrustCity;

    /**
     * 药品通用名
     */
    @TableField(value = "drug_generic_name")
    @ApiModelProperty(value="药品通用名")
    @Excel(name = "药品通用名")
    private String drugGenericName;

    /**
     * 规格
     */
    @TableField(value = "specification")
    @ApiModelProperty(value="规格")
    @Excel(name = "规格")
    private String specification;

    /**
     * 剂型
     */
    @TableField(value = "dosage_form")
    @ApiModelProperty(value="剂型")
    @Excel(name = "剂型")
    private String dosageForm;

    /**
     * 包装规格
     */
    @TableField(value = "package_spec")
    @ApiModelProperty(value="包装规格（如：28片/盒）")
    @Excel(name = "包装规格")
    private String packageSpec;

    /**
     * 国家药品标识码
     */
    @TableField(value = "national_drug_code")
    @ApiModelProperty(value="国家药品标识码")
    @Excel(name = "国家药品标识码")
    private String nationalDrugCode;

    /**
     * 批准文号
     */
    @TableField(value = "approval_no")
    @ApiModelProperty(value="批准文号")
    @Excel(name = "批准文号")
    private String approvalNo;

    /**
     * 生产厂家
     */
    @TableField(value = "manufacturer")
    @ApiModelProperty(value="生产厂家")
    @Excel(name = "生产厂家")
    private String manufacturer;

    /**
     * 生产批号
     */
    @TableField(value = "batch_no")
    @ApiModelProperty(value="生产批号")
    @Excel(name = "生产批号")
    private String batchNo;

    /**
     * 生产日期
     */
    @TableField(value = "production_date")
    @ApiModelProperty(value="生产日期")
    @Excel(name = "生产日期", dateFormat = "yyyyMMdd")
    private Date productionDate;

    /**
     * 有效期至
     */
    @TableField(value = "expire_date")
    @ApiModelProperty(value="有效期截止日期")
    @Excel(name = "有效期至",dateFormat = "yyyyMMdd")
    private Date expireDate;

    /**
     * 合计数量（最小颗粒单位）
     */
    @TableField(value = "total_quantity")
    @ApiModelProperty(value="合计数量（最小颗粒单位）")
    @Excel(name = "合计数量（最小赋码单位）")
    private Integer totalQuantity;

    /**
     * 最小赋码单位：字典表smallest_unit_code
     */
    @TableField(value = "smallest_unit_code")
    @ApiModelProperty(value="最小赋码单位：字典表smallest_unit_code")
    @Excel(name = "最小赋码单位", dictType = "smallest_unit_code")
    private String smallestUnitCode;

    /**
     * 最小制剂数量
     */
    @TableField(value = "smallest_dosage_quantity")
    @ApiModelProperty(value="最小制剂数量")
    @Excel(name = "最小制剂数量")
    private Integer smallestDosageQuantity;

    /**
     * 最小制剂单位:字典表smallest_dosage_unit_code
     */
    @TableField(value = "smallest_dosage_unit_code")
    @ApiModelProperty(value="最小制剂单位:字典表smallest_dosage_unit_code")
    @Excel(name = "最小制剂单位", dictType = "smallest_dosage_unit_code")
    private String smallestDosageUnitCode;

    /**
     * 唯一编号
     */
    @TableField(value = "bill_id_detail_id")
    @ApiModelProperty(value="唯一编号")
    @Excel(name = "billIdDetailId")
    private String billIdDetailId;

    /**
     * 备注信息
     */
    @TableField(value = "remarks")
    @ApiModelProperty(value="备注信息")
    private String remarks;

    /**
     * 记录创建时间
     */
    @TableField(value = "created_time")
    @ApiModelProperty(value="记录创建时间")
    private Date createdTime;

    /**
     * 记录更新时间
     */
    @TableField(value = "updated_time")
    @ApiModelProperty(value="记录更新时间")
    private Date updatedTime;
}